Constraint programming can be used in a wide variety of constraint problems including job shop and flow shop scheduling, where a scheduling problem involves time and/or value restrictions placed in scheduling the tasks. Constraint programming can be used to find a solution which can satisfy all of the constraints. Constraint programming includes a set of search variables, domains that set boundaries for the possible values for each of the variables, and a set of constraints. Typical scheduling problems involve creating two search variables for each task: one variable to represent the equipment that can process a task and another variable to represent the start time for the task. Unfortunately, the typical creation of two search variables provides limited capability for modeling common situations. For example, if an industrial engineer wishes to limit the production of a product during the first twelve hours of a day, the current state of the art does not provide a general constraint to place a restriction when creating a manufacturing schedule. Rather, an industrial engineer has to do it from scratch using basic tools of constraint programming.